1 using UnityEngine;
2
3 namespace
ProceduralToolkit.Examples
4 {
5     
public static class Armrests
6     {
7         
public static MeshDraft Armrests0(float seatWidth, float seatDepth, Vector3 backCenter, float backHeight,
8             
float legWidth)
9         {
10             
var draft = new MeshDraft();
11             
float armrestHeight = RandomE.Range(backHeight/4, backHeight*3/4, 3);
12             
float armrestLength = seatDepth - legWidth;
13
14             Vector3 corner = backCenter + Vector3.left*(seatWidth/
2 - legWidth/2) + Vector3.back*legWidth/2;
15
16             
float offset = 0;
17             
if (RandomE.Chance(0.5f))
18             {
19                 offset = RandomE.Range(legWidth/
2, legWidth, 2);
20             }
21             Vector3 v0 = corner + Vector3.back*(armrestLength - legWidth/
2);
22             Vector3 v1 = v0 + Vector3.up*(armrestHeight - legWidth/
2);
23             Vector3 v2 = corner + Vector3.up*armrestHeight;
24             Vector3 v3 = v2 + Vector3.back*(armrestLength + offset);
25
26             
var armrest = ChairGenerator.BeamDraft(v0, v1, legWidth);
27             armrest.Add(ChairGenerator.BeamDraft(v2, v3, legWidth));
28             draft.Add(armrest);
29             armrest.Move(Vector3.right*(seatWidth - legWidth));
30             draft.Add(armrest);
31             
return draft;
32         }
33
34         
public static MeshDraft Armrests1(float seatWidth, float seatDepth, Vector3 backCenter, float backHeight,
35             
float legWidth)
36         {
37             
var draft = new MeshDraft();
38             
float armrestHeight = RandomE.Range(backHeight/4, backHeight*3/4, 3);
39             
float armrestLength = RandomE.Range(seatDepth*3/4, seatDepth, 2);
40             legWidth = RandomE.Range(legWidth*
3/4, legWidth, 2);
41
42             Vector3 corner = backCenter + Vector3.left*(seatWidth/
2 + legWidth/2) +
43                              Vector3.forward*legWidth/
2;
44
45             
float offset = 0;
46             
if (RandomE.Chance(0.5f))
47             {
48                 offset = RandomE.Range(armrestLength/
4, armrestLength/2, 2) - legWidth/2;
49             }
50             Vector3 v0 = corner + Vector3.back*(armrestLength - legWidth/
2 - offset) + Vector3.down*legWidth;
51             Vector3 v1 = v0 + Vector3.up*(armrestHeight + legWidth/
2);
52             Vector3 v2 = corner + Vector3.up*armrestHeight;
53             Vector3 v3 = v2 + Vector3.back*armrestLength;
54
55             
var armrest = ChairGenerator.BeamDraft(v0, v1, legWidth);
56             armrest.Add(ChairGenerator.BeamDraft(v2, v3, legWidth));
57             draft.Add(armrest);
58             armrest.Move(Vector3.right*(seatWidth + legWidth));
59             draft.Add(armrest);
60             
return draft;
61         }
62     }
63 }


Gõ tìm kiếm nhanh...